package org.demos.springaiargdemo1.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class ChatCompletionRequest {
    
    /**
     * 模型名称
     */
    private String model;
    
    /**
     * 消息列表
     */
    private List<ChatMessage> messages;
    
    /**
     * 是否流式响应
     */
    private boolean stream = false;
    
    /**
     * 最大生成token数
     */
    @JsonProperty("max_tokens")
    private Integer maxTokens;
    
    /**
     * 温度参数 (0-2)
     */
    private Double temperature;
    
    /**
     * 核采样参数 (0-1)
     */
    @JsonProperty("top_p")
    private Double topP;
    
    /**
     * 停止序列
     */
    private List<String> stop;
    
    /**
     * 用户标识
     */
    private String user;
    
    /**
     * 频率惩罚 (-2.0 to 2.0)
     */
    @JsonProperty("frequency_penalty")
    private Double frequencyPenalty;
    
    /**
     * 存在惩罚 (-2.0 to 2.0)
     */
    @JsonProperty("presence_penalty")
    private Double presencePenalty;
    
    /**
     * 函数调用配置
     */
    private Object functions;
    
    /**
     * 工具调用配置
     */
    private List<Map<String, Object>> tools;
} 